/**
 * 
 */
package com.skivingcloud.utils;

import java.util.Collections;

import com.baomidou.mybatisplus.generator.FastAutoGenerator;
import com.baomidou.mybatisplus.generator.config.OutputFile;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;

/**
 * 代码生成工具
 * @author humengge
 *
 */
public class MybatisXGenerator {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		FastAutoGenerator.create("jdbc:postgresql://127.0.0.1:5432/skivingcloud?useUnicode=true&characterEncoding=utf8", "postgres", "1qaz!QAZ")
	    .globalConfig(builder -> {
	        builder.author("skivingcloud") // 设置作者
	            .enableSwagger() // 开启 swagger 模式
	            .fileOverride() // 覆盖已生成文件
	            .outputDir("D:\\\\javaprogram\\\\mybatisplusgenerator"); // 指定输出目录
	    })
	    .packageConfig(builder -> {
	        builder.parent("com.skivingcloud.apiplatform") // 设置父包名
	            .moduleName("mng") // 设置父包模块名
	            .pathInfo(Collections.singletonMap(OutputFile.mapperXml, "D:\\javaprogram\\mybatisplusgenerator\\com\\skivingcloud\\apiplatform\\mng\\mapping")); // 设置mapperXml生成路径
	    })
	    .strategyConfig(builder -> {
	        builder.addInclude("api_platform_mng") // 设置需要生成的表名
	            .addTablePrefix("t_", "c_", "sys_"); // 设置过滤表前缀
	    })
	    .templateEngine(new FreemarkerTemplateEngine()) // 使用Freemarker引擎模板，默认的是Velocity引擎模板
	    .execute();
	}

}
